Storage products frequently provide value by using low-level operations on a storage controller to provide high level operations upon application-level and host-level objects. A basic requirement for these products is an accurate representation of the storage stack: from the top-level data management containers down to the underlying storage controller resources.
Existing techniques for obtaining this representation are specific to certain types of storage resources and are unable to build an accurate representation of changing storage structures. Each time the underlying structure changes, the implementation of the existing techniques needs to be changed to accurately discover the structure. This requires re-writing and re-testing of the implementation.